﻿@namespace MudBlazor.UnitTests.TestComponents
<MudPopoverProvider></MudPopoverProvider>

<MudAutocomplete id="autocompleteLabelTest" T="string" Label="US States" @bind-Value="value1" SearchFunc="@Search1" DebounceInterval="10" PopoverClass="autocomplete-popover-class" AdornmentIcon="@Icon" />

<MudButton OnClick="ChangeIcon">Change Icon</MudButton>

@code {
	public static string __description__ = "The adornment icon should change after button click";

	private string value1 = "Alabama";

	private string[] states =
	{
        "Alabama", "Alaska", "American Samoa", "Arizona",
        "Arkansas", "California", "Colorado", "Connecticut",
        "Delaware", "District of Columbia", "Federated States of Micronesia",
        "Florida", "Georgia", "Guam", "Hawaii", "Idaho",
        "Illinois", "Indiana", "Iowa", "Kansas", "Kentucky",
        "Louisiana", "Maine", "Marshall Islands", "Maryland",
        "Massachusetts", "Michigan", "Minnesota", "Mississippi",
        "Missouri", "Montana", "Nebraska", "Nevada",
        "New Hampshire", "New Jersey", "New Mexico", "New York",
        "North Carolina", "North Dakota", "Northern Mariana Islands", "Ohio",
        "Oklahoma", "Oregon", "Palau", "Pennsylvania", "Puerto Rico",
        "Rhode Island", "South Carolina", "South Dakota", "Tennessee",
        "Texas", "Utah", "Vermont", "Virgin Island", "Virginia",
        "Washington", "West Virginia", "Wisconsin", "Wyoming",
    };

	[Parameter]
	public string Icon { get; set; } = Icons.Material.Filled.Abc;

	private async Task<IEnumerable<string>> Search1(string value)
	{
		// In real life use an asynchronous function for fetching data from an api.
		await Task.Delay(5);

		// if text is null or empty, show complete list
		if (string.IsNullOrEmpty(value))
			return states;
		return states.Where(x => x.Contains(value, StringComparison.InvariantCultureIgnoreCase));
	}


	public void ChangeIcon()
	{
		Icon = Icons.Material.Filled.AccessAlarm;
		StateHasChanged();
	}

}
